/* Copyright (c) 2016-2020 Enfry Ltd. All Rights Reserved.
 * 
 * This software is the confidential and proprietary information of Enfry. 
 * You shall not disclose such Confidential Information
 * and shall use it only in accordance with the terms of the agreements
 * you entered into with Enfry.
 */
package com.enfry.storage.exception;

public enum ExCode {
    /** 数据库错误：2000 */
    DB_ERR("2000", "数据库错误"),
    /** 签名MD5加密IO异常：2001 */
    SIGN_IO_ERR("2001", "签名MD5加密IO异常"),
    /** 参数错误 ：2002 */
    PARAM_ERR("2002", "参数错误"),
    
    /** FastDFS错误：4000 */
    FASTDFS_ERR("4000", "存储系统错误"),
    /** FastDFS配置错误：4001 */
    FASTDFS_CONFIG("4001", "服务器配置错误"),
    /** 上传文件存储错误：4010 */
    FASTDFS_UPLOAD("4010", "上传文件到服务器时发生错误"),
    /** 上传文件存储写入错误：4011 */
    FASTDFS_UPLOAD_IO("4011", "上传文件到服务器时写入错误"),
    /** 下载文件错误 ：4020 */
    FASTDFS_DOWNLOAD("4020", "从服务器下载文件时发生错误"),
    /** 下载文件IO错误：4021 */
    FASTDFS_DOWNLOAD_IO("4021", "从服务器下载的文件不存在"),
    /** 删除服务器文件时发生错误 ：4020 */
    FASTDFS_DELETE("4030", "删除服务器文件时发生错误"),
    /** 删除服务器文件IO错误：4031 */
    FASTDFS_DELETE_IO("4031", "从服务器删除的文件不存在"),
    
    /** 文件操作错误：5000 */
    FILE_ERR("5000", "文件操作错误"),
    /** 文件代码不存在：5010 */
    FILE_CODE_NOT_FOUND("5010", "无效的文件代码"),
    /** 文件上传错误：5020 */
    FILE_UPLOAD("5020", "文件上传错误"),
    /** 上传的单个文件大小超过限制：5021 */
    FILE_UPLOAD_SINGLE_MAX_SIZE("5021", "上传的单个文件大小超过限制"),
    /** 上传的文件总大小超过限制：5022 */
    FILE_UPLOAD_TOTAL_MAX_SIZE("5022", "上传的文件总大小超过限制"),
    /** 上传的文件中包含禁止的类型：5023 */
    FILE_UPLOAD_TYPE_LIMIT("5023", "上传的文件中包含禁止的类型"),
    /** 批量删除不完全：5030 */
    FILE_DELETE_BATCH_FAIL("5030", "批量删除不完全"),

    IMG_ZOOM_ERR("5500", "图片缩放失败"),
    
    /** 客户端错误：6000 */
    CLIENT_ERR("6000", "客户端错误"),
    /** 不合法的客户端：6001 */
    CLIENT_INVALID("6000", "不合法的客户端"),
//    /** 文件代码不存在：5010 */
//    FILE_CODE_NOT_FOUND("5010", "文件代码不存在"),
//    /** 文件上传错误：5020 */
//    FILE_UPLOAD("5020", "文件上传错误"),
    
    /** API内部错误：7000 */
    API_ERR("7000", "API内部错误"),
    /** API已被禁用：7001 */
    API_DISABLED("7001", "API已被禁用"),
    /** API签名认证失败：7002 */
    API_TOKEN_INVALID("7002", "API签名认证失败"),
    /** 客户端时间不准确，请校准至标准时间：7003 */
    API_CLIENT_TIME("7003", "客户端时间不准确，请校准至标准时间"),
    /** token已过期：7004 */
    API_TOKEN_EXPIRED("7004", "token已过期"),
    /** API参数不全：7005 */
    API_PARAM_LACK("7005", "API参数不全"),
    /** API参数格式错误 ：7006 */
    API_PARAM_FORMAT("7006", "API参数格式错误"),
    /** 无效的API ：7020 */
    API_INVALID("7020", "无效的API"),

    /** 未定义的运行时错误：9999 */
    RUNTIME("9999", "系统错误")
    ;
    
    private String code;
    private String msg;

    private ExCode(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    @Override
    public String toString() {
        return this.getCode() + "=" + this.getMsg();
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
}
